global path "/Users/francescocolombo/Dropbox/papers/memory and political attitudes/paper/code/replication_file"


use "$path/data_final.dta", replace

set scheme plotplain 
graph set window fontface "Times New Roman"
ssc install ebalance
ssc install stripplot	

* Global definition

*************** Table A.2 ***************

estpost tabstat fascist_memory_cat  support_mussolini keep_commemorating_cat sup_trns_jstc_fasc1_cat  af_outdated_cat af_founding_cat party_ban_cat anti_fascist, statistics(mean sd min max) column(statistics)
est store auth_no

* Table:
esttab auth_no using "$path/tables/tableA2.tex", ///
			cells("mean(fmt(2)) sd(fmt(2)) min(fmt(0)) max(fmt(0)) count(fmt(0)) ") ///
			label ///
			collabel("Mean" "SD" "Min" "Max")  ///
			mlabel(none) ///
			nonumber ///
			compress replace

*************** Figure A.2 ***************
			
factor fascist_memory_cat  support_mussolini keep_commemorating_cat sup_trns_jstc_fasc1_cat  af_outdated_cat af_founding_cat party_ban_cat anti_fascist

screeplot, ///
	yline(1) ///
	title("")  ///
	mcolor(black) ///
	msymbol(O)

 graph export "$path/figures/figureA2.pdf", ///
	replace 

*************** Table A.3 ***************

factor fascist_memory_cat  support_mussolini keep_commemorating_cat sup_trns_jstc_fasc1_cat  af_outdated_cat af_founding_cat party_ban_cat anti_fascist, factors(1)

matrix list e(L)
esttab e(L, fmt(2))using  "$path/tables/tableA3.tex", ///
	replace ///
	label ///
	mgroups("", pattern(1 )) 
	
*************** Table A.5 ***************


estpost tabstat left_events_cat left_media_cat left_resistance_cat all_italians_cat more_inclusive_cat, statistics(mean sd min max) column(statistics)
est store partisan
* Table:
esttab partisan using "$path/tables/tableA5.tex", ///
			cells("mean(fmt(2)) sd(fmt(2)) min(fmt(0)) max(fmt(0)) count(fmt(0)) ") ///
			label ///
			collabel("Mean" "SD" "Min" "Max")  ///
			mlabel(none) ///
			nonumber ///
			compress replace
			
*************** Figure A.3 ***************			
			
factor left_events_cat left_media_cat left_resistance_cat more_inclusive_cat all_italians_cat

screeplot, ///
	yline(1) ///
	title("")  ///
	mcolor(black) ///
	msymbol(O)

 graph export "$path/figures/figureA3.pdf", ///
	replace 

*************** Table A.6 ***************

factor left_events_cat left_media_cat left_resistance_cat more_inclusive_cat all_italians_cat, factors(1)

matrix list e(L)
esttab e(L, fmt(2))using  "$path/tables/tableA6.tex", ///
	replace ///
	label 

*************** Figure A.4 ***************

* Create a bar plot of frequencies for each category
local title: variable label left_comm
graph bar (percent), over(left_comm, label(angle(45))) title("`title'") ytitle("Percentage") blabel(bar, format(%2.0f)) name(left_comm, replace)

local title: variable label left_fr
graph bar (percent), over(left_fr, label(angle(45))) title("`title'") ytitle("Percentage") blabel(bar, format(%2.0f)) name(left_fr, replace)

local title: variable label left_res
graph bar (percent), over(left_res, label(angle(45))) title("`title'") ytitle("Percentage") blabel(bar, format(%2.0f)) name(left_res, replace)

local title: variable label more_inc
graph bar (percent), over(more_inc, label(angle(45))) title("`title'") ytitle("Percentage") blabel(bar, format(%2.0f)) name(more_inc, replace)

local title: variable label all_it
graph bar (percent), over(all_it, label(angle(45))) title("`title'") ytitle("Percentage") blabel(bar, format(%2.0f)) name(all_it, replace)

graph combine left_comm left_fr left_res more_inc all_it
graph export "$path/figures/figureA4.pdf", replace


*************** Table A.7 ***************

estpost tabstat male age education_1 education_2 education_3 lab_status_1 lab_status_2 lab_status_3 lab_status_4 lab_status_5 lab_status_6 lab_status_7 lab_status_8, statistics(mean sd min max N) column(statistics)
est store control_var
* Table:
esttab control_var using "$path/tables/tableA7.tex", ///
			cells("mean(fmt(2)) sd(fmt(2)) min(fmt(0)) max(fmt(0)) count(fmt(0)) ") ///
			coeflabels(male "Male" age "Age" education_1 "Elementary or middle school" education_2 "High school" education_3 "Tertiary education" lab_status_1 "Fixed-term employeee" lab_status_2 "Open-end employeee" lab_status_3 "Self-employed" lab_status_4 "Student" lab_status_5 "Not employed" lab_status_6 "Retired" lab_status_7 "Unemployed" lab_status_8 "Else") ///
			collabel("Mean" "SD" "Min" "Max" "N")  ///
			compress replace
			
*************** Table A.8 ***************

qui estpost tabstat male age education_1 education_2 education_3 lab_status_1 lab_status_2 lab_status_3 lab_status_4 lab_status_5 lab_status_6 lab_status_7 lab_status_8 , statistics(mean) column(statistics)
	est store demo_total
qui estpost tabstat male age education_1 education_2 education_3 lab_status_1 lab_status_2 lab_status_3 lab_status_4 lab_status_5 lab_status_6 lab_status_7 lab_status_8 if post_commemoration==1 , statistics(mean) column(statistics)
	est store treated_comm
qui estpost tabstat male age education_1 education_2 education_3 lab_status_1 lab_status_2 lab_status_3 lab_status_4 lab_status_5 lab_status_6 lab_status_7 lab_status_8 if post_commemoration==0 , statistics(mean) column(statistics)
	est store control_comm
qui estpost tabstat male age education_1 education_2 education_3 lab_status_1 lab_status_2 lab_status_3 lab_status_4 lab_status_5 lab_status_6 lab_status_7 lab_status_8 if treatment_public==1 , statistics(mean) column(statistics)
	est store treated_public
qui estpost tabstat male age education_1 education_2 education_3 lab_status_1 lab_status_2 lab_status_3 lab_status_4 lab_status_5 lab_status_6 lab_status_7 lab_status_8 if treatment_public==0 , statistics(mean) column(statistics)
	est store control_public

* T-Tests of equality - across priming
qui estpost ttest male age education_1 education_2 education_3 lab_status_1 lab_status_2 lab_status_3 lab_status_4 lab_status_5 lab_status_6 lab_status_7 lab_status_8, by(treatment_public)  // here you just have to do it by a variable (it does not matter which variable) that has only 2 values (a simple 0 1 dummy)
	est store demo_ttest_public

* T-Tests of equality - across priming
qui estpost ttest male age education_1 education_2 education_3 lab_status_1 lab_status_2 lab_status_3 lab_status_4 lab_status_5 lab_status_6 lab_status_7 lab_status_8, by(post_commemoration)  // here you just have to do it by a variable (it does not matter which variable) that has only 2 values (a simple 0 1 dummy)
	est store demo_ttest_comm

			   
* Table with F-test p-values

esttab demo_total treated_comm control_comm demo_ttest_comm treated_public control_public demo_ttest_public   ///
	using "$path/tables/tableA8.tex", ///
		replace ///
	cells("mean(fmt(2) pattern(1 1 1 0 1 1 0)) p(fmt(2) pattern(0 0 0 1 0 0 1))" "sd(fmt(2) pattern(1 1 1 0 1 1 0) par )") ///
	nonumber ///
	collabel(none) ///
	label ///
	mgroups("" "" "" "" "" "", pattern(1 1 1 1 1 1 1 1 1)) ///
	mlabel("All" "Post-commemoration" "Pre-commemoration" "P-value" "Public" "Private" "P-value") ///   
	noobs stats(N, fmt(0) labels("N")) ///
	varwidth(30)

*************** Table A.9 ***************

qui estpost tabstat male age education_1 education_2 education_3 lab_status_1 lab_status_2 lab_status_3 lab_status_4 lab_status_5 lab_status_6 lab_status_7 lab_status_8 , statistics(mean) column(statistics)
	est store demo_total
qui estpost tabstat male age education_1 education_2 education_3 lab_status_1 lab_status_2 lab_status_3 lab_status_4 lab_status_5 lab_status_6 lab_status_7 lab_status_8 if treatment_list==1 , statistics(mean) column(statistics)
	est store treated_list
qui estpost tabstat male age education_1 education_2 education_3 lab_status_1 lab_status_2 lab_status_3 lab_status_4 lab_status_5 lab_status_6 lab_status_7 lab_status_8 if treatment_list==0 , statistics(mean) column(statistics)
	est store control_list

* T-Tests of equality - across priming
qui estpost ttest male age education_1 education_2 education_3 lab_status_1 lab_status_2 lab_status_3 lab_status_4 lab_status_5 lab_status_6 lab_status_7 lab_status_8, by(treatment_list)  // here you just have to do it by a variable (it does not matter which variable) that has only 2 values (a simple 0 1 dummy)
	est store demo_ttest_list


			   
* Table with F-test p-values

esttab demo_total treated_list control_list demo_ttest_list   ///
	using "$path/tables/tableA9.tex", ///
		replace ///
	cells("mean(fmt(2) pattern(1 1 1 0 1 1 0)) p(fmt(2) pattern(0 0 0 1 0 0 1))" "sd(fmt(2) pattern(1 1 1 0 1 1 0) par )") ///
	nonumber ///
	collabel(none) ///
	label ///
	mgroups("" "" "" "" "" "", pattern(1 1 1 1 1 1 1 1 1)) ///
	mlabel("All" "Treated list" "Control list" "P-value") ///   
	noobs stats(N, fmt(0) labels("N")) ///
	varwidth(30)
	

*************** Figure A.5 ***************			

stripplot aut_nostalgia, ///
	over(party_voted) ///
	box(barw(0.4)) ///
	pct(0.1) ///
	boffset(-0.3) ///
	vertical ///
	stack ///
	height(0.4) ///
	mc(gs1%30) ///
	msize(vsmall) ///
	msymbol(o) ///
	xlabel(,angle(30))
graph export "$path/figures/figureA5.pdf", replace
	
*************** Figure A.6 ***************			

stripplot aut_nostalgia, ///
	over(region) ///
	box(barw(0.4)) ///
	pct(0.1) ///
	boffset(-0.3) ///
	vertical ///
	stack ///
	height(0.4) ///
	mc(gs1%30) ///
	msize(vsmall) ///
	msymbol(o) ///
	xlabel(,angle(30))
graph export "$path/figures/figureA6.pdf", replace
				

*************** Figure A.7 ***************			

clear all
use "$path/data_final.dta", replace

frame create output str20(outcome) t b se ub95 lb95 ub90 lb90

* recode to go all in the nostalgia direction
fre fascist_memory_cat support_mussolini keep_commemorating_cat sup_trns_jstc_fasc1_cat  af_outdated_cat af_founding_cat party_ban_cat anti_fascist

* reverse items that are anti-nostalgic to be all aligned to the athoritarian nostalgia index
gen keep_comm_inv=5-keep_commemorating_cat
gen sup_trns_jstc_inv=5-sup_trns_jstc_fasc1_cat
gen af_founding_inv=5-af_founding_cat
gen party_ban_inv=5-party_ban_cat
gen anti_fascist_inv=1-anti_fascist

gen inter=post_commemoration
replace inter=1 if post_commemoration==0 & treatment_public==1
replace inter=2 if post_commemoration==1 & treatment_public==0
replace inter=3 if post_commemoration==1 & treatment_public==1

foreach y of varlist aut_nostalgia fascist_memory support_mussolini keep_comm_inv sup_trns_jstc_inv af_outdated af_founding_inv party_ban_inv anti_fascist_inv {
	
	sum `y', d
	replace `y'=(`y'-r(mean))/r(sd)

	* Post-commemoration treatment
	reg `y' i.post_commemoration, vce(robust)
	local df=e(df_r)
	margins, dydx(post_commemoration) post coeflegend


	frame post output ("`y'") (4) (_b[1.post_commemoration]) (_se[1.post_commemoration]) (_b[1.post_commemoration]-invttail(`df', .975)*_se[1.post_commemoration]) (_b[1.post_commemoration]+invttail(`df', .975)*_se[1.post_commemoration]) (_b[1.post_commemoration]-invttail(`df', .95)*_se[1.post_commemoration]) (_b[1.post_commemoration]+invttail(`df', .95)*_se[1.post_commemoration])

	* public treatment

	reg `y' i.treatment_public, vce(robust)
	local df=e(df_r)
	margins, dydx(treatment_public) post coeflegend

	frame post output ("`y'") (3) (_b[1.treatment_public]) (_se[1.treatment_public]) (_b[1.treatment_public]-invttail(`df', .975)*_se[1.treatment_public]) (_b[1.treatment_public]+invttail(`df', .975)*_se[1.treatment_public]) (_b[1.treatment_public]-invttail(`df', .95)*_se[1.treatment_public]) (_b[1.treatment_public]+invttail(`df', .95)*_se[1.treatment_public])

	* Interaction effect

	reg `y' i.inter, vce(robust)

	local df=e(df_r)

	frame post output ("`y'") (2) (_b[1.inter]) (_se[1.inter]) (_b[1.inter]-invttail(`df', .975)*_se[1.inter]) (_b[1.inter]+invttail(`df', .975)*_se[1.inter]) (_b[1.inter]-invttail(`df', .95)*_se[1.inter]) (_b[1.inter]+invttail(`df', .95)*_se[1.inter])

	frame post output ("`y'") (1) (_b[2.inter]) (_se[2.inter]) (_b[2.inter]-invttail(`df', .975)*_se[2.inter]) (_b[2.inter]+invttail(`df', .975)*_se[2.inter]) (_b[2.inter]-invttail(`df', .95)*_se[2.inter]) (_b[2.inter]+invttail(`df', .95)*_se[2.inter])

	frame post output ("`y'") (0) (_b[3.inter]) (_se[3.inter]) (_b[3.inter]-invttail(`df', .975)*_se[3.inter]) (_b[3.inter]+invttail(`df', .975)*_se[3.inter]) (_b[3.inter]-invttail(`df', .95)*_se[3.inter]) (_b[3.inter]+invttail(`df', .95)*_se[3.inter])

	
}

frame change output

encode outcome, gen(out)
fre out
drop outcome
recode out (5=1) (9=2) (6=3) (8=4) (2=5) (1=6) (7=7) (3=8) (4=9), gen(outcome)
drop out

label define outlab ///
1 "Partisan are traitors" ///
2 "Mussolini great leader" ///
3 "Support commemoration" ///
4 "Punish fascists" ///
5 "Anti-fascism is outdated" ///
6 "Anti-fascism founding value" ///
7 "Ban neo-fascist parties" ///
8 "Identify as anti-fascist" ///
9 "Authoritarian nostalgia" 

label value outcome outlab
fre outcome

label define t_lbl 4 "Post-commemoration" 3 "Public treatment" 2 "Public - Pre-commemoration" 1 "Private - Post-commemoration"  0 "Public - Post-commemoration"
label value t t_lbl

sort b
gen id=_n
sum id
local mini=r(min)
local maxi=r(max)

gen significant=0
replace significant=1 if (ub90>0 & lb90>0) | (ub90<0 & lb90<0)

* effects

twoway ///
	scatter b id if significant==0, ///
		lc(navy%100) ///
		mc(navy%100) ///
		msize(med) ///
		msymbol(o) ///
	|| ///
	rspike lb90 ub90 id if significant==0, ///
		lc(navy%100) ///
		lw(med) ///
	|| ///
	rspike lb95 ub95 id if significant==0, ///
		lc(navy%100) ///
		lw(thin) ///
	|| ///
	scatter b id if significant==1, ///
		lc(gold%100) ///
		mc(gold%100) ///
		msize(med) ///
		msymbol(o) ///
	|| ///
	rspike lb90 ub90 id if significant==1, ///
		lc(gold%100) ///
		lw(med) ///
	|| ///
	rspike lb95 ub95 id if significant==1, ///
		lc(gold%100) ///
		lw(thin) ///
	, ///
		graphregion(margin(29.95 0 9 0)) ///
		yline(0, lcolor(black) lstyle(foreground)) ///
		xtitle("") ///
		ytitle("ATE") ///
		legend(off) /// 
		ylabel(, grid glcolor(grey%60) glw(thin)) ///
		xlabel(`mini'(1)`maxi', nolab grid glcolor(grey%60) glw(thin)) ///
		xscale(off) ///
		fysize(80) ///
		name(effect, replace)

* DVs

twoway ///
	scatter outcome id if significant==0, ///
		msymbol(|) ///
		msize(large) ///
		mcolor(navy%100) ///
	|| ///
	scatter outcome id if significant==1, ///
		msymbol(|) ///
		msize(large) ///
		mcolor(gold%100) ///
	, ///
		graphregion(margin(3.655 0 9 0)) ///
		xtitle("") ///
		ytitle("") ///
		legend(off) /// 
		ylabel(1(1)9, valuelab grid glcolor(grey%60) glw(thin)) ///
		xlabel(`mini'(1)`maxi', nolab grid glcolor(grey%60) glw(thin)) ///
		xscale(off) ///
		fysize(45) ///
		name(dvs, replace) 
		
* IVs
twoway ///
	scatter t id if significant==0, ///
		msymbol(|) ///
		msize(large) ///
		mcolor(navy%100) ///
	|| ///
	scatter t id if significant==1, ///
		msymbol(|) ///
		msize(large) ///
		mcolor(gold%100) ///
	, ///
		graphregion(margin(0 0 5 0)) ///
		xtitle("") ///
		ytitle("") ///
		legend(off) /// 
		ylabel(0(1)4, valuelab grid glcolor(grey%60) glw(thin)) ///
		xlabel(`mini'(1)`maxi', nolab grid glcolor(grey%60) glw(thin)) ///
		xscale(off) ///
		fysize(25) ///
		name(ivs, replace)

graph combine effect dvs ivs, ///
	col(1) ///
	name(plot_comb, replace)
graph export "$path/figures/figureA7.pdf", replace
	

*************** Figure A.8 ***************			
				
frames reset
use "$path/data_final.dta", replace

*************** Ebalance ***************

ebalance post_commemoration male age education_1 education_2 education_3 lab_status_1 lab_status_2 lab_status_3 lab_status_4 lab_status_5 lab_status_6 lab_status_7 lab_status_8, g(eb_pc) 

ebalance treatment_public male age education_1 education_2 education_3 lab_status_1 lab_status_2 lab_status_3 lab_status_4 lab_status_5 lab_status_6 lab_status_7 lab_status_8, g(eb_pub) 

frame create output t b se ub95 lb95 ub90 lb90

* Post-commemoration treatment

svyset [pweight= eb_pc]
 
svy: reg aut_nostalgia i.post_commemoration
local df=e(df_r)
margins, dydx(post_commemoration) post coeflegend


frame post output (4) (_b[1.post_commemoration]) (_se[1.post_commemoration]) (_b[1.post_commemoration]-invttail(`df', .975)*_se[1.post_commemoration]) (_b[1.post_commemoration]+invttail(`df', .975)*_se[1.post_commemoration]) (_b[1.post_commemoration]-invttail(`df', .95)*_se[1.post_commemoration]) (_b[1.post_commemoration]+invttail(`df', .95)*_se[1.post_commemoration])

* public treatment

svyset [pweight= eb_pub]
 
svy: reg aut_nostalgia i.treatment_public
local df=e(df_r)
margins, dydx(treatment_public) post coeflegend

frame post output (3) (_b[1.treatment_public]) (_se[1.treatment_public]) (_b[1.treatment_public]-invttail(`df', .975)*_se[1.treatment_public]) (_b[1.treatment_public]+invttail(`df', .975)*_se[1.treatment_public]) (_b[1.treatment_public]-invttail(`df', .95)*_se[1.treatment_public]) (_b[1.treatment_public]+invttail(`df', .95)*_se[1.treatment_public])

* Interaction effect
gen inter=post_commemoration
replace inter=1 if post_commemoration==0 & treatment_public==1
replace inter=2 if post_commemoration==1 & treatment_public==0
replace inter=3 if post_commemoration==1 & treatment_public==1

reg aut_nostalgia i.inter, vce(robust)
local df=e(df_r)

frame post output (2) (_b[1.inter]) (_se[1.inter]) (_b[1.inter]-invttail(`df', .975)*_se[1.inter]) (_b[1.inter]+invttail(`df', .975)*_se[1.inter]) (_b[1.inter]-invttail(`df', .95)*_se[1.inter]) (_b[1.inter]+invttail(`df', .95)*_se[1.inter])

frame post output (1) (_b[2.inter]) (_se[2.inter]) (_b[2.inter]-invttail(`df', .975)*_se[2.inter]) (_b[2.inter]+invttail(`df', .975)*_se[2.inter]) (_b[2.inter]-invttail(`df', .95)*_se[2.inter]) (_b[2.inter]+invttail(`df', .95)*_se[2.inter])

frame post output (0) (_b[3.inter]) (_se[3.inter]) (_b[3.inter]-invttail(`df', .975)*_se[3.inter]) (_b[3.inter]+invttail(`df', .975)*_se[3.inter]) (_b[3.inter]-invttail(`df', .95)*_se[3.inter]) (_b[3.inter]+invttail(`df', .95)*_se[3.inter])


* Effects plot

frame change output

label define t_lbl 4 "Post-commemoration" 3 "Public treatment" 2 "Public - Pre-commemoration" 1 "Private - Post-commemoration"  0 "Public - Post-commemoration"
label values t t_lbl

twoway ///
	scatter t b if t>2, ///
		mc(black) ///
		msymbol(o) ///
	|| ///
	rspike lb90 ub90 t if t>2, ///
		horizontal ///
		lc(black) ///
		lw(medium) ///
	|| ///
	rspike lb95 ub95 t if t>2, ///
		horizontal ///
		lc(black) ///
		lw(thin) ///
	|| ///
		, ///
		legend(off) ///	
		graphregion(margin(16.85 3.2 0 0)) ///
		ytitle("", size(mlarge)) ///	
		ylabel(3(1)4, valuelabel nogrid labs(medl)) ///
		yscale(range(2.5 4.5)) ///
		xlabel(-8(4)8, grid glcolor(black%70) glw(medium) labs(medl)) ///
		xscale(off) ///
		xtitle("", size(medl)) ///
		xline(0, lcolor(red) lstyle(foreground)) ///
		title("Individual treatment models", box fcolor(gs14) bexpand size(medlarge)) ///
		name(ind, replace) ///
		fysize(50) 
		
twoway ///
	scatter t b if t<=2, ///
		mc(black) ///
		msymbol(o) ///
	|| ///
	rspike lb90 ub90 t if t<=2, ///
		horizontal ///
		lc(black) ///
		lw(medium) ///
	|| ///
	rspike lb95 ub95 t if t<=2, ///
		horizontal ///
		lc(black) ///
		lw(thin) ///
	|| ///
		, ///
		legend(off) ///		
		ytitle("", size(mlarge)) ///	
		ylabel(0(1)2, valuelabel nogrid labs(medl)) ///
		yscale(range(-.5 2.5)) ///
		xlabel(-8(4)8, grid glcolor(black%70) glw(medium) labs(medl)) ///
		xtitle("Authoritarian nostalgia", size(medl)) ///
		xline(0, lcolor(red) lstyle(foreground)) ///
		title("Intereactive model", box fcolor(gs14) bexpand size(medlarge)) ///
		name(inter, replace) ///
		fysize(60) 

graph combine ind inter, xcommon col(1)

graph export "$path/figures/figureA8.pdf", replace

				
*************** Figure A.9 ***************			
				
				
frames reset
use "$path/data_final.dta", replace

ebalance treatment_list male age education_1 education_2 education_3 lab_status_1 lab_status_2 lab_status_3 lab_status_4 lab_status_5 lab_status_6 lab_status_7 lab_status_8, g(eb_list) 

frame create output_list t mean se ub95 lb95 ub90 lb90

svyset [pweight= eb_list]
 
svy: reg list_score i.treatment_list 
local df=e(df_r)
margins, dydx(treatment_list) post coeflegend

	
frame post output_list (1) (_b[1.treatment_list]) (_se[1.treatment_list]) (_b[1.treatment_list]-invttail(`df', .975)*_se[1.treatment_list]) (_b[1.treatment_list]+invttail(`df', .975)*_se[1.treatment_list]) (_b[1.treatment_list]-invttail(`df', .95)*_se[1.treatment_list]) (_b[1.treatment_list]+invttail(`df', .95)*_se[1.treatment_list])
	
reg support_mussolini 
local df=e(df_r)
margins, dydx(_cons) post coeflegend

frame post output_list (2) (_b[_cons]) (_se[_cons]) (_b[_cons]-invttail(`df', .975)*_se[_cons]) (_b[_cons]+invttail(`df', .975)*_se[_cons]) (_b[_cons]-invttail(`df', .95)*_se[_cons]) (_b[_cons]+invttail(`df', .95)*_se[_cons])

frame change output_list

recode t (1=1 "Private (list)") (2=2 "Public (direct)") , gen(group_ordered)
gen value=round(mean*100, .1)
replace lb95=lb95*100
replace ub95=ub95*100
replace lb90=lb90*100
replace ub90=ub90*100

	
twoway (bar value group_ordered, barwidth(0.8) color(gs9%70)) ///
	(rspike lb95 ub95 group_ordered, lw(thin) lcolor(black%70))  ///
	(rspike lb90 ub90 group_ordered, lw(medthick ) lcolor(black%70))  ///
	(rspike lb95 ub95 group_ordered, lw(thin) lcolor(black%70))  ///
	(rspike lb90 ub90 group_ordered, lw(thin) lcolor(black%70))  ///
	(scatter value group_ordered, msymbol(none) mlabel(value) mlabsize(medlarge) mlabposition(1)) , ///
		xlabel(1(1)2, nogrid valuelabel labsize(medlarge) angle(45)) ///
		xtitle("", size(mlarge)) ///	
		ytitle("Mussolini great statesman", size(mlarge)) ///	
		ylabel(0(10)50, grid glcolor(black%70) glw(thin) labs(medl)) ///
		title("") ///
		legend(off) ///
		aspect(1.5) 
graph export "$path/figures/figureA9.pdf", replace
				
				
*************** Figure A.10 ***************			

*********** Post commemoration
frame reset
set seed 12345
frame create estimates_df n b

use "$path/data_final.dta", replace

* Store main model estimate
reg aut_nostalgia i.post_commemoration, vce(robust)
global b_comm=_b[1.post_commemoration]

* Generate 5000 random estimates
drop if post_commemoration==1


forvalues i = 1/5000 {

	display `i'
	
	preserve 
		
		gen treat=cond(runiform() < 0.5, 0, 1)
		
		reg aut_nostalgia i.treat, vce(robust)
		
		frame post  estimates_df (`i') (_b[1.treat])

	restore
}


frame change estimates_df

* Plot estimates
histogram b, ///
	percent ///
	xline($b_comm, lcolor(blue)) ///
	xline(0, lcolor(red)) ///
	color(black%30) /// 
	xtitle("Placebo perutation test, effects distribution", size(large)) ///
	ytitle("Share", size(large)) ///
	xlabel(, grid glcolor(gray%80) labs(medl) glw(medium)) ///
	ylabel(, grid glcolor(gray%80) labs(medl) glw(medium)) 


graph export "$path/figures/figureA10a.pdf", replace

******** public treatment

frame reset
set seed 12345
frame create estimates_df n b

* randomly select an year of treatment

use "$path/data_final.dta", replace


* Store main model estimate
reg aut_nostalgia i.treatment_public, vce(robust)
global b_treat=_b[1.treatment_public]

* Generate 5000 random estimates

drop if treatment_public==1


forvalues i = 1/5000 {

	display `i'
	
	preserve 
		
		gen treat=cond(runiform() < 0.5, 0, 1)
		
		reg aut_nostalgia i.treat, vce(robust)
		
		frame post  estimates_df (`i') (_b[1.treat])

	restore
}


frame change estimates_df

* Plot estimates
histogram b, ///
	percent ///
	xline($b_treat, lcolor(blue)) ///
	xline(0, lcolor(red)) ///
	color(black%30) /// 
	xtitle("Placebo perutation test, effects distribution", size(large)) ///
	ytitle("Share", size(large)) ///
	xlabel(, grid glcolor(gray%80) labs(medl) glw(medium)) ///
	ylabel(, grid glcolor(gray%80) labs(medl) glw(medium)) 


graph export "$path/figures/figureA10b.pdf", replace


*************** Figure A.11 ***************			
				
frames reset
use "$path/data_final.dta", replace

frame create output t b se ub95 lb95 ub90 lb90

* Post-commemoration treatment
reg aut_nostalgia i.post_commemoration if treatment_public==0, vce(robust)
local df=e(df_r)
margins, dydx(post_commemoration) post coeflegend


frame post output (2) (_b[1.post_commemoration]) (_se[1.post_commemoration]) (_b[1.post_commemoration]-invttail(`df', .975)*_se[1.post_commemoration]) (_b[1.post_commemoration]+invttail(`df', .975)*_se[1.post_commemoration]) (_b[1.post_commemoration]-invttail(`df', .95)*_se[1.post_commemoration]) (_b[1.post_commemoration]+invttail(`df', .95)*_se[1.post_commemoration])

* public treatment

reg aut_nostalgia i.treatment_public if post_commemoration==0, vce(robust)
local df=e(df_r)
margins, dydx(treatment_public) post coeflegend

frame post output (1) (_b[1.treatment_public]) (_se[1.treatment_public]) (_b[1.treatment_public]-invttail(`df', .975)*_se[1.treatment_public]) (_b[1.treatment_public]+invttail(`df', .975)*_se[1.treatment_public]) (_b[1.treatment_public]-invttail(`df', .95)*_se[1.treatment_public]) (_b[1.treatment_public]+invttail(`df', .95)*_se[1.treatment_public])

* Effects plot

frame change output

label define t_lbl2 2 "Post-commemoration" 1 "Public treatment"
label values t t_lbl2

twoway ///
	scatter t b , ///
		mc(black) ///
		msymbol(o) ///
	|| ///
	rspike lb90 ub90 t , ///
		horizontal ///
		lc(black) ///
		lw(medium) ///
	|| ///
	rspike lb95 ub95 t , ///
		horizontal ///
		lc(black) ///
		lw(thin) ///
	|| ///
		, ///
		legend(off) ///	
		graphregion(margin(16.85 3.2 0 0)) ///
		ytitle("", size(mlarge)) ///	
		ylabel(1 2, valuelabel nogrid labs(medl)) ///
		yscale(range(0.5 2.5)) ///
		xlabel(-8(4)8, grid glcolor(black%70) glw(medium) labs(medl)) ///
		xtitle("Authoritarian nostalgia", size(medl)) ///
		xline(0, lcolor(red) lstyle(foreground)) ///
		title("Other experiment control group subsample", box fcolor(gs14) bexpand size(medlarge)) ///
		name(ind, replace) ///
		fysize(50) 

graph export "$path/figures/figureA11.pdf", replace				
				
*************** Figure A.12 ***************							

frames reset
use "$path/data_final.dta", replace

frame create output t b se ub95 lb95 ub90 lb90

* Post-commemoration treatment
reg support_mussolini i.post_commemoration, vce(robust)
local df=e(df_r)
margins, dydx(post_commemoration) post coeflegend


frame post output (4) (_b[1.post_commemoration]) (_se[1.post_commemoration]) (_b[1.post_commemoration]-invttail(`df', .975)*_se[1.post_commemoration]) (_b[1.post_commemoration]+invttail(`df', .975)*_se[1.post_commemoration]) (_b[1.post_commemoration]-invttail(`df', .95)*_se[1.post_commemoration]) (_b[1.post_commemoration]+invttail(`df', .95)*_se[1.post_commemoration])

* public treatment

reg support_mussolini i.treatment_public, vce(robust)
local df=e(df_r)
margins, dydx(treatment_public) post coeflegend

frame post output (3) (_b[1.treatment_public]) (_se[1.treatment_public]) (_b[1.treatment_public]-invttail(`df', .975)*_se[1.treatment_public]) (_b[1.treatment_public]+invttail(`df', .975)*_se[1.treatment_public]) (_b[1.treatment_public]-invttail(`df', .95)*_se[1.treatment_public]) (_b[1.treatment_public]+invttail(`df', .95)*_se[1.treatment_public])

* Interaction effect
gen inter=post_commemoration
replace inter=1 if post_commemoration==0 & treatment_public==1
replace inter=2 if post_commemoration==1 & treatment_public==0
replace inter=3 if post_commemoration==1 & treatment_public==1

reg support_mussolini i.inter, vce(robust)
local df=e(df_r)

frame post output (2) (_b[1.inter]) (_se[1.inter]) (_b[1.inter]-invttail(`df', .975)*_se[1.inter]) (_b[1.inter]+invttail(`df', .975)*_se[1.inter]) (_b[1.inter]-invttail(`df', .95)*_se[1.inter]) (_b[1.inter]+invttail(`df', .95)*_se[1.inter])

frame post output (1) (_b[2.inter]) (_se[2.inter]) (_b[2.inter]-invttail(`df', .975)*_se[2.inter]) (_b[2.inter]+invttail(`df', .975)*_se[2.inter]) (_b[2.inter]-invttail(`df', .95)*_se[2.inter]) (_b[2.inter]+invttail(`df', .95)*_se[2.inter])

frame post output (0) (_b[3.inter]) (_se[3.inter]) (_b[3.inter]-invttail(`df', .975)*_se[3.inter]) (_b[3.inter]+invttail(`df', .975)*_se[3.inter]) (_b[3.inter]-invttail(`df', .95)*_se[3.inter]) (_b[3.inter]+invttail(`df', .95)*_se[3.inter])

* Effects plot

frame change output

label define t_lbl 4 "Post-commemoration" 3 "Public treatment" 2 "Public - Pre-commemoration" 1 "Private - Post-commemoration"  0 "Public - Post-commemoration"
label values t t_lbl

twoway ///
	scatter t b if t>2, ///
		mc(black) ///
		msymbol(o) ///
	|| ///
	rspike lb90 ub90 t if t>2, ///
		horizontal ///
		lc(black) ///
		lw(medium) ///
	|| ///
	rspike lb95 ub95 t if t>2, ///
		horizontal ///
		lc(black) ///
		lw(thin) ///
	|| ///
		, ///
		legend(off) ///	
		graphregion(margin(16.85 3.2 0 0)) ///
		ytitle("", size(mlarge)) ///	
		ylabel(3(1)4, valuelabel nogrid labs(medl)) ///
		yscale(range(2.5 4.5)) ///
		xlabel(-0.2(0.1)0.2, grid glcolor(black%70) glw(medium) labs(medl)) ///
		xscale(off) ///
		xtitle("", size(medl)) ///
		xline(0, lcolor(red) lstyle(foreground)) ///
		title("Individual treatment models", box fcolor(gs14) bexpand size(medlarge)) ///
		name(ind, replace) ///
		fysize(50) 
		
twoway ///
	scatter t b if t<=2, ///
		mc(black) ///
		msymbol(o) ///
	|| ///
	rspike lb90 ub90 t if t<=2, ///
		horizontal ///
		lc(black) ///
		lw(medium) ///
	|| ///
	rspike lb95 ub95 t if t<=2, ///
		horizontal ///
		lc(black) ///
		lw(thin) ///
	|| ///
		, ///
		legend(off) ///		
		ytitle("", size(mlarge)) ///	
		ylabel(0(1)2, valuelabel nogrid labs(medl)) ///
		yscale(range(-.5 2.5)) ///
		xlabel(-0.2(0.1)0.2, grid glcolor(black%70) glw(medium) labs(medl)) ///
		xtitle("Mussolini great statesman", size(medl)) ///
		xline(0, lcolor(red) lstyle(foreground)) ///
		title("Intereactive model", box fcolor(gs14) bexpand size(medlarge)) ///
		name(inter, replace) ///
		fysize(60) 

	
graph combine ind inter, xcommon col(1)

graph export "$path/figures/figureA12.pdf", replace
				
*************** Figure A.13 ***************							
				
use "$path/data_final.dta", replace

* Normative expectations
sum normative_exp if right==0, d
local media=r(mean)
sum normative_exp if right==1, d
local media_r=r(mean)
twoway (histogram normative_exp if right==0, percent bin(15) color(red%40)) ///
	(histogram normative_exp if right==1, percent bin(15) color(gs5%30)) , ///
	xline(`media', ///
		lcolor(red%60)) ///
	xline(`media_r', ///
		lcolor(black%60)) ///
	xline(50, lcolor(grey) lstyle(foreground)) ///
	name(hist, replace) ///
	xtitle("Normative expectations", size(large)) ///	
	ytitle("Percentage", size(large)) ///	
	aspect(.5) ///
	legend(off)

graph export "$path/figures/figureA13a.pdf", replace

* Empirical expectations
sum empirical_exp if right==0, d
local media=r(mean)
sum empirical_exp if right==1, d
local media_r=r(mean)
twoway (histogram empirical_exp if right==0, percent bin(15) color(red%40)) ///
	(histogram empirical_exp if right==1, percent bin(15) color(gs5%30)) , ///
	xline(`media', ///
		lcolor(red%60)) ///
	xline(`media_r', ///
		lcolor(black%60)) ///
	xline(50, lcolor(grey) lstyle(foreground)) ///
	name(hist, replace) ///
	xtitle("Empirical expectations", size(large)) ///	
	ytitle("Percentage", size(large)) ///	
	aspect(.5) ///
	legend(off)

graph export "$path/figures/figureA13b.pdf", replace
				
* Partisan commemoration
sum partisan_commemoration if right==0, d
local media=r(mean)
sum partisan_commemoration if right==1, d
local media_r=r(mean)
twoway (histogram partisan_commemoration if right==0, percent bin(15) color(red%40)) ///
	(histogram partisan_commemoration if right==1, percent bin(15) color(gs5%30)) , ///
	xline(`media', ///
		lcolor(red%60)) ///
	xline(`media_r', ///
		lcolor(black%60)) ///
	xline(50, lcolor(grey) lstyle(foreground)) ///
	name(hist, replace) ///
	xtitle("Partisan commemoration", size(large)) ///	
	ytitle("Percentage", size(large)) ///	
	aspect(.5) ///
	legend(off)
graph export "$path/figures/figureA13c.pdf", replace

				
*************** Figure A.14 ***************							
				
* Post-commemoration treatment
reg aut_nostalgia i.post_commemoration##i.strage, vce(robust)
local df=e(df_r)
margins strage, dydx(post_commemoration) level (95) post coeflegend
marginsplot, ///
		ytitle("", size(mlarge)) ///	
		ylabel(-8(4)8, grid glcolor(black%70) glw(medium)) ///
		xscale(range(-.5 1.5)) ///
		xlabel(0 1, grid glcolor(black%70) glw(medium)) ///
		ytitle("", size(medl)) ///
		yline(0, lcolor(red) lstyle(foreground)) ///
		title("Post-commemoration ATE, by civilian victimization", box fcolor(gs14) bexpand size(medlarge)) ///
		recast(scatter) ///
		ciopts(lc(black) lw(medium)) ///
		plotopts(msymbol(o) mcolor(black)) 
graph export "$path/figures/figureA14a.pdf", replace
		
* Public treatment
reg aut_nostalgia i.treatment_public##i.strage, vce(robust)
local df=e(df_r)
margins strage, dydx(treatment_public) level (95) post coeflegend
marginsplot, ///
		ytitle("", size(mlarge)) ///	
		ylabel(-8(4)8, grid glcolor(black%70) glw(medium)) ///
		xscale(range(-.5 1.5)) ///
		xlabel(0 1, grid glcolor(black%70) glw(medium)) ///
		ytitle("", size(medl)) ///
		yline(0, lcolor(red) lstyle(foreground)) ///
		title("Public treatment ATE, by civilian victimization", box fcolor(gs14) bexpand size(medlarge)) ///
		recast(scatter) ///
		ciopts(lc(black) lw(medium)) ///
		plotopts(msymbol(o) mcolor(black)) 
graph export "$path/figures/figureA14b.pdf", replace
								
*************** Figure A.15 ***************							

label define vio_lbl 0 "No violence" 1 "Violence"
label values fascist_strage vio_lbl
label var fascist_strage "Fascist violence"

* Post-commemoration treatment
reg aut_nostalgia i.post_commemoration##i.fascist_strage, vce(robust)
local df=e(df_r)
margins fascist_strage, dydx(post_commemoration) level (95) post coeflegend
marginsplot, ///
		ytitle("", size(mlarge)) ///	
		ylabel(-8(4)8, grid glcolor(black%70) glw(medium)) ///
		xscale(range(-.5 1.5)) ///
		xlabel(0 1, grid glcolor(black%70) glw(medium)) ///
		ytitle("", size(medl)) ///
		yline(0, lcolor(red) lstyle(foreground)) ///
		title("Post-commemoration ATE, by civilian victimization", box fcolor(gs14) bexpand size(medlarge)) ///
		recast(scatter) ///
		ciopts(lc(black) lw(medium)) ///
		plotopts(msymbol(o) mcolor(black)) 
graph export "$path/figures/figureA15a.pdf", replace
		
reg aut_nostalgia i.treatment_public##i.fascist_strage, vce(robust)
local df=e(df_r)
margins fascist_strage, dydx(treatment_public) level (95) post coeflegend
marginsplot, ///
		ytitle("", size(mlarge)) ///	
		ylabel(-8(4)8, grid glcolor(black%70) glw(medium)) ///
		xscale(range(-.5 1.5)) ///
		xlabel(0 1, grid glcolor(black%70) glw(medium)) ///
		ytitle("", size(medl)) ///
		yline(0, lcolor(red) lstyle(foreground)) ///
		title("Public treatment ATE, by civilian victimization", box fcolor(gs14) bexpand size(medlarge)) ///
		recast(scatter) ///
		ciopts(lc(black) lw(medium)) ///
		plotopts(msymbol(o) mcolor(black)) 
graph export "$path/figures/figureA15b.pdf", replace
			
*************** Figure A.16 ***************							
	
frames reset
use "$path/data_final.dta", replace

*** By age

* Post-commemoration treatment
reg aut_nostalgia i.post_commemoration##c.age, vce(robust)
local df=e(df_r)
margins, dydx(post_commemoration) at(age=(20(20)80)) level (95) post coeflegend
marginsplot, ///
		ytitle("", size(mlarge)) ///	
		ylabel(-8(4)8, grid glcolor(black%70) glw(medium)) ///
		xlabel(, grid glcolor(black%70) glw(medium)) ///
		ytitle("", size(medl)) ///
		yline(0, lcolor(red) lstyle(foreground)) ///
		title("Post-commemoration ATE, by age", box fcolor(gs14) bexpand size(medlarge)) ///
		ciopts(lc(black) lw(medium)) ///
		plotopts(msymbol(o) mcolor(black)) 
graph export "$path/figures/figureA16a.pdf", replace
		
* Public treatment
reg aut_nostalgia i.treatment_public##c.age, vce(robust)
local df=e(df_r)
margins, dydx(treatment_public) at(age=(20(20)80)) level (95) post coeflegend
marginsplot, ///
		ytitle("", size(mlarge)) ///	
		ylabel(-8(4)8, grid glcolor(black%70) glw(medium)) ///
		xlabel(, grid glcolor(black%70) glw(medium)) ///
		ytitle("", size(medl)) ///
		yline(0, lcolor(red) lstyle(foreground)) ///
		title("Public treatment ATE, by age", box fcolor(gs14) bexpand size(medlarge)) ///
		ciopts(lc(black) lw(medium)) ///
		plotopts(msymbol(o) mcolor(black)) 
graph export "$path/figures/figureA16b.pdf", replace
		
	